This invention relates to protocols for determining a common mode of operation for two network devices that can operate at multiple modes. More particularly, this invention relates to methods and apparatus for performing reverse auto-negotiation between the two network devices.
A local area network may be provided to establish a network connection between a plurality of network devices (e.g., computers, printers, routers, switches, hubs, etc.). These network devices, however, may each have different networking abilities (e.g., speed, duplex, pause, master/slave, etc.). For example, one device (e.g., a hub) may support 10BASE-T and 1000BASE-T connections. Another device (e.g., a computer) may support 10BASE-T, 100BASE-T, and 1000BASE-T connections. The network standard (e.g., IEEE 802.3) may define a protocol, such as an auto-negotiation protocol, to determine the highest common mode (e.g., the highest speed) at which these devices can operate to communicate with one another. In this example, auto-negotiation may determine that the highest common operational mode of the two network devices is 1000BASE-T.
A network device operating at 1000BASE-T, however, consumes a large amount of power compared to, for example, a 10BASE-T connection. In particular, a network device operating at 1000BASE-T must use four data transceivers to transmit and receive data packets over four twisted-pair cable paths. On the other hand, a network device operating at 10BASE-T and 100BASE-T only requires a single data transceiver to transmit and receive data packets over two twisted-pair cable paths.
Therefore, for purposes of reducing power consumption, it may not be desirable for some network devices to operate at the highest common operational mode. Instead, a different mode may be preferred. For example, if a local network device maintains a constant link with another network device (e.g., a server for periodic backup of data), it may not be desirable to sustain a constant high speed connection (e.g., 1000BASE-T), especially when the local network device is idle for long periods of time (e.g., overnight). In this example, it may be desirable for the local network device to operate at the lowest common operational mode (e.g., 10BASE-T) in order to reduce power consumption for the local network device.
One approach to establishing a connection between a local network device and another network device (i.e., the link partner) at any common mode is for the local network device to determine the abilities of the link partner through normal auto-negotiation. Then the local network device may intentionally break the link with the link partner and re-link with the link partner. When auto-negotiation occurs for the second time, the local network device advertises only the common mode at which it prefers to operate (e.g., the lowest speed at which the link partner is able to operate). The link partner receives only this advertised capability, and the local network device and the link partner connect at the preferred common operational mode.
Although this approach results in the desired outcome (e.g., the two network devices link at the preferred mode), this approach has several disadvantages for the overall network. One of these disadvantages is that the two network devices must link twice before establishing a connection. Every time a link is broken and reestablished, the network must recalculate its spanning tree. Recalculating a network spanning tree involves remapping a single path to each network device to prevent the same packet from arriving at a network device multiple times. If several devices unnecessarily force the network to recalculate its spanning tree, the network may experience a slowdown in traffic for other network devices.